/**
 *
 */
package com.saohuobang.test.util;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ResourceBundle;


/**
 * 应用参数工具类，获得config配置文件中定义的参数
 *
 * @author yubin
 */
public class AppConfig {

    private static Logger logger = LoggerFactory.getLogger(AppConfig.class);

    private AppConfig() {
    }

    public static String getString(String key) {
        String BUNDLE_NAME = "props/config";

        try {
            ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
            return RESOURCE_BUNDLE.getString(key);
        } catch (Exception e) {
            logger.error("不能在配置文件{}中发现参数：!{}! message = ", BUNDLE_NAME, key, e.getMessage(), e);
            throw new RuntimeException("不能在配置文件" + BUNDLE_NAME + "中发现参数：" + '!' + key + '!');
        }
    }

    /**
     * 根据 key 及文件名从配置文件中查找value
     *
     * @param key      需要查找的key
     * @param fileName 文件名
     * @return
     */
    public static String getString(String key, String fileName) {
        String BUNDLE_NAME = "props/" + fileName;

        try {
            ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
            return RESOURCE_BUNDLE.getString(key);
        } catch (Exception e) {
            logger.error("不能在配置文件{}中发现参数：!{}! message = ", BUNDLE_NAME, key, e.getMessage(), e);
            throw new RuntimeException("不能在配置文件" + BUNDLE_NAME + "中发现参数：" + '!' + key + '!');
        }
    }

    /**
     * 根据 key 及文件名从配置文件中查找value
     *
     * @param key      需要查找的key
     * @return
     */
    public static int getInt(String key) {
        try {
            return Integer.parseInt(getString(key));
        }catch (Exception e){
            return 0;
        }
    }
}
